package com.tedu.api.map;

import org.junit.Test;

import java.util.*;
/**包位置：java.util
 * Map顶级映射接口
 * 作用：一个元素由两个对象构成：分别键：Key与值：Value
 *      保存一个元素：Key---value【保存一对：两个对象】
 * 用途：通常与数据库搭配使用
 * 特点：键：无序、无下标、不可重复，实际存HashSet
 *      值：存泛型约束的类型，可以重复，实际存Collection
 *      Map   接口对象创建----实现类
 *  HashMap：【常用:HashMap的方法与Map方法类似】由键值对组成，使用哈希算法实现
 *  键与值可以为null，键中只允许有一个null
 *  LinkedHashMap【不常用：方法与HashMap类似】
 *  TreeMap：【不用】
 *  HashTable：【不用】
 *  ConcurrentHashMap：【常用】多线程
 */
public class MapAPI {
    @Test
    public void testMap(){
        //创建Map映射集合接口
        Map<Object,String> map=new HashMap<>();
        /**
         * put(键k，值v)  返回值：V value---实际Collection
         * 作用：映射集合存入一对元素：键与值
         */
        map.put("西游记","孙悟空");//Key键：Set集合：无序、无下标、唯一
        map.put("红楼梦","林黛玉");//Key值一致，进行覆盖
        map.put("水浒传","宋公明");
        map.put("三国志","诸葛亮");
        map.put("红楼梦","贾宝玉");
        System.out.println("Map集合"+map);

        //需求：获取一组元素中值：“林黛玉”  get键  通过键找值
        String lin=map.get("红楼梦");
        System.out.println("通过键找值："+lin);
    }
}
